package Vista;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.text.DateFormatter;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JSpinner.DateEditor;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.ListSelectionModel;
import javax.swing.SwingConstants;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import Controlador.CMulta;

import java.awt.Font;

import Modelo.Cooperativa;
import Modelo.Socio;
import Modelo.Unidad;
import Modelo.Terminal;
//librerias








import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.event.ActionListener;
import java.awt.event.WindowListener;

import javax.swing.DebugGraphics;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JSeparator;
import javax.swing.WindowConstants;

import clasesCreadas.JPanelImagen;

import java.awt.Color;
import java.util.Vector;
//librerias
@SuppressWarnings("all")
public class VMulta extends JFrame{

	Cooperativa co;
	Socio so;
	Unidad uni;
	Terminal ter;
	
	private JPanel contentPane;
	private JPanel panel;
	private JLabel lblcodigo;
	private JLabel lbldescripcion;
	private JTextField txtcodigo;
	private JTextField txtdescripcion;
	private JButton btnguardar;
	private JButton btnmodificar;
	private JButton btnlimpiar;
	private JButton btneliminar;
	private JLabel lbltitulo;
	private JButton btnbuscar;
	private JTextField txtfecha;
	private JLabel lblfecha;
	private JComboBox cmbCooperativa;
	private JComboBox cmbSocio;
	private JComboBox cmbUnidad;
	private JTextField txtfechafalto;
	private JLabel lblfechafalto;
	private JLabel lblChofer;
	
	private JLabel lblCooperativa;
	private JLabel lblSocio;
	private JLabel lblUnidad;
	private JTextField txtCooperativa;
	private JTextField txtSocio;
	private JTextField txtUnidad;
	private JTextField txtChofer;
	
	private JComboBox cmbFechaFalto;
	private JPanel logo;
	
	private JScrollPane scpMulta;
	private JTable tblMulta;
	
	
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					VEmpleado frame = new VEmpleado(null);
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		
		});
	
	}
	
	public VMulta(CMulta cmu){
		
		this.setExtendedState(Frame.MAXIMIZED_BOTH);
		this.setResizable(false);
		
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setBounds(100, 100, 613, 525);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);
		
		panel = new JPanel();
		panel.setBackground(Color.WHITE);
		contentPane.add(panel, BorderLayout.CENTER);
		panel.setLayout(null);
		
		logo = new JPanelImagen("Imagenes/logo.png");
		logo.setBounds(494, 362, 50, 50);
		panel.add(logo);
		
		scpMulta = new JScrollPane();
		//contentPane.add(scpCooperativas);
		panel.add(scpMulta);
		scpMulta.setBounds(96, 387, 354, 88);
		scpMulta.getHorizontalScrollBar().setSize(20, 10);
		
		DefaultTableModel tblCooperativaModel =
				new DefaultTableModel(
						new String[][] {},
						new String[] { "codigo", "Unidad"});
		
		tblMulta = new JTable();
		DefaultTableCellRenderer modelocentrar = new DefaultTableCellRenderer();
        modelocentrar.setHorizontalAlignment(SwingConstants.CENTER);
        scpMulta.setViewportView(tblMulta);
        tblMulta.setModel(tblCooperativaModel);
        tblMulta.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        tblMulta.getTableHeader().setFont(new java.awt.Font("Tahoma",1,12));
        tblMulta.getTableHeader().setForeground(new java.awt.Color(64,128,128));
        tblMulta.getColumnModel().getColumn(0).setCellRenderer(modelocentrar);
        tblMulta.getColumnModel().getColumn(1).setCellRenderer(modelocentrar);
        tblMulta.setFont(new java.awt.Font("Tahoma",0,12));
        tblMulta.setEnabled(false);
		
		lblcodigo = new JLabel("Codigo");
		lblcodigo.setBounds(86, 78, 70, 15);
		lblcodigo.setFont(new java.awt.Font("Tahoma",1,12));
		lblcodigo.setForeground(new java.awt.Color(64,128,128));
		panel.add(lblcodigo);
		
		txtcodigo = new JTextField();
		txtcodigo.setBounds(279, 73, 171, 26);
		panel.add(txtcodigo);
		
		lbldescripcion = new JLabel("Descripcion");
		lbldescripcion.setBounds(86, 116, 85, 15);
		lbldescripcion.setFont(new java.awt.Font("Tahoma",1,12));
		lbldescripcion.setForeground(new java.awt.Color(64,128,128));
		panel.add(lbldescripcion);
		
		txtdescripcion = new JTextField();
		txtdescripcion.setBounds(279, 111, 171, 26);
		panel.add(txtdescripcion);
		
		btnguardar = new JButton("Multar");
		btnguardar.setBounds(473, 122, 171, 26);
		btnguardar.setForeground(new java.awt.Color(64,128,128));
		btnguardar.setFont(new java.awt.Font("Tahoma",1,12));
		btnguardar.setSize(99, 32);
		btnguardar.addActionListener(cmu);
		panel.add(btnguardar);
		
		lbltitulo = new JLabel("Multa");
		lbltitulo.setBounds(250, 12, 199, 32);
		lbltitulo.setFont(new Font("Dialog", Font.BOLD, 24));
		lbltitulo.setForeground(new java.awt.Color(64,128,128));
		panel.add(lbltitulo);
		
		
		btnmodificar = new JButton("Modificar");
		btnmodificar.setBounds(473, 166, 171, 26);
		btnmodificar.setForeground(new java.awt.Color(64,128,128));
		btnmodificar.setFont(new java.awt.Font("Tahoma",1,12));
		btnmodificar.setSize(99, 32);
		btnmodificar.addActionListener(cmu);
		panel.add(btnmodificar);
		
		btneliminar = new JButton("Eliminar");
		btneliminar.setBounds(473, 210, 171, 26);
		btneliminar.setForeground(new java.awt.Color(64,128,128));
		btneliminar.setFont(new java.awt.Font("Tahoma",1,12));
		btneliminar.setSize(99, 32);
		btneliminar.addActionListener(cmu);
		panel.add(btneliminar);
		
		btnlimpiar = new JButton("Limpiar");
		btnlimpiar.setBounds(473, 253, 171, 26);
		btnlimpiar.setForeground(new java.awt.Color(64,128,128));
		btnlimpiar.setFont(new java.awt.Font("Tahoma",1,12));
		btnlimpiar.setSize(99, 32);
		btnlimpiar.addActionListener(cmu);
		panel.add(btnlimpiar);
		
		
		btnbuscar = new JButton("Buscar");
		btnbuscar.setBounds(473, 69, 171, 26);
		btnbuscar.setForeground(new java.awt.Color(64,128,128));
		btnbuscar.setFont(new java.awt.Font("Tahoma",1,12));
		btnbuscar.setSize(99, 32);
		btnbuscar.addActionListener(cmu);
		panel.add(btnbuscar);
		
		lblfecha = new JLabel("Fecha Emision");
		lblfecha.setBounds(86, 150, 115, 23);
		lblfecha.setFont(new java.awt.Font("Tahoma",1,12));
		lblfecha.setForeground(new java.awt.Color(64,128,128));
		panel.add(lblfecha);
		
		txtfecha = new JTextField();
		txtfecha.setBounds(279, 149, 171, 26);
		panel.add(txtfecha);
		
		cmbUnidad = new JComboBox();
		ComboBoxModel cmbUnidadModel = new DefaultComboBoxModel(new String[] {"Seleccione una unidad"});
		cmbUnidad.setBounds(185,314,265,26);
		cmbUnidad.setModel(cmbUnidadModel);
		panel.add(cmbUnidad);
		
		cmbCooperativa = new JComboBox();
		ComboBoxModel cmbCooperativadModel = new DefaultComboBoxModel(new String[]  {"Seleccione una cooperativa"});
		cmbCooperativa.setBounds(185,238,265,26);
		cmbCooperativa.setModel(cmbCooperativadModel);
		cmbCooperativa.addItemListener(cmu);
		panel.add(cmbCooperativa);
		
		cmbSocio = new JComboBox();
		ComboBoxModel cmbSocioModel = new DefaultComboBoxModel(new String[] {"Seleccione un socio"});
		cmbSocio.setBounds(185,276,265,26);
		cmbSocio.setModel(cmbSocioModel);
		cmbSocio.addItemListener(cmu);
		panel.add(cmbSocio);
		
		lblfechafalto = new JLabel("Fecha en la que falto");
		lblfechafalto.setBounds(86, 189, 156, 23);
		lblfechafalto.setFont(new java.awt.Font("Tahoma",1,12));
		lblfechafalto.setForeground(new java.awt.Color(64,128,128));
		panel.add(lblfechafalto);
		
		txtfechafalto = new JTextField();
		txtfechafalto.setBounds(279, 187, 171, 26);
		panel.add(txtfechafalto);
		
		
		lblCooperativa = new JLabel("Cooperativa");
		lblCooperativa.setBounds(86, 240, 156, 23);
		lblCooperativa.setFont(new java.awt.Font("Tahoma",1,12));
		lblCooperativa.setForeground(new java.awt.Color(64,128,128));
		panel.add(lblCooperativa);
		
		lblSocio = new JLabel("Socio");
		lblSocio.setBounds(86, 279, 156, 23);
		lblSocio.setFont(new java.awt.Font("Tahoma",1,12));
		lblSocio.setForeground(new java.awt.Color(64,128,128));
		panel.add(lblSocio);
		
		lblUnidad = new JLabel("Unidad");
		lblUnidad.setBounds(86, 316, 156, 23);
		lblUnidad.setFont(new java.awt.Font("Tahoma",1,12));
		lblUnidad.setForeground(new java.awt.Color(64,128,128));
		panel.add(lblUnidad);
		
		txtCooperativa = new JTextField();
		txtCooperativa.setBounds(279, 239, 171, 26);
		panel.add(txtCooperativa);
		txtCooperativa.setColumns(10);
		
		
		txtSocio = new JTextField();
		txtSocio.setBounds(279, 276, 171, 26);
		panel.add(txtSocio);
		txtSocio.setColumns(10);
		
		txtUnidad = new JTextField();
		txtUnidad.setBounds(279, 314, 171, 26);
		panel.add(txtUnidad);
		txtUnidad.setColumns(10);
		
		cmbFechaFalto = new JComboBox();
		ComboBoxModel cmbFechaFaltodModel = new DefaultComboBoxModel(new String[]  {"Seleccione un dia feriado"});
		cmbFechaFalto.setBounds(250,187,200,26);
		cmbFechaFalto.setModel(cmbFechaFaltodModel);
		cmbFechaFalto.addItemListener(cmu);
		panel.add(cmbFechaFalto);
		
		lblChofer = new JLabel("Chofer");
		lblChofer.setBounds(86, 352, 156, 23);
		lblChofer.setFont(new java.awt.Font("Tahoma",1,12));
		lblChofer.setForeground(new java.awt.Color(64,128,128));
		panel.add(lblChofer);
		
		txtChofer = new JTextField();
		txtChofer.setBounds(279, 352, 171, 26);
		panel.add(txtChofer);

		
	}
	

	
	//Metodos Gets de los objetos JTextField y JButton
	
	
	
	public JTextField getTxtCooperativa() {
		return txtCooperativa;
	}

	public JScrollPane getScpMulta() {
		return scpMulta;
	}

	public JLabel getLblChofer() {
		return lblChofer;
	}

	public JTextField getTxtChofer() {
		return txtChofer;
	}

	public JComboBox getCmbFechaFalto() {
		return cmbFechaFalto;
	}

	public JTextField getTxtSocio() {
		return txtSocio;
	}

	public JTextField getTxtUnidad() {
		return txtUnidad;
	}

	public JTextField getTxtCodigo(){
		return txtcodigo;
	}
	
	public JTextField getTxtfecha() {
		return txtfecha;
	}

	public JComboBox getCmbCooperativa() {
		return cmbCooperativa;
	}

	public JComboBox getCmbSocio() {
		return cmbSocio;
	}

	public JComboBox getCmbUnidad() {
		return cmbUnidad;
	}

	public JTextField getTxtfechafalto() {
		return txtfechafalto;
	}

	public JTextField getTxtDescripcion(){
		return txtdescripcion;
	}
	
	//Metodos gets de los botones
	
	public JButton getBtnGuardar(){
		return btnguardar;
	}
	
	public JButton getBtnEliminar(){
		return btneliminar;
	}
	
	public JButton getBtnModificar(){
		return btnmodificar;
		
	}
	
	public JButton getBtnLimpiar(){
		return btnlimpiar;
	}
	
	public JButton getBtnBuscar(){
		return btnbuscar;
	}
	
	
	/** 
	 * Metodo que agrega una fila en la tabla de multas
	 * @param datos fila que se va agregar en tblMultas
	 */
	public void agregarFilaTblMultas(Vector<String> datos) {
		DefaultTableModel modelo = (DefaultTableModel) tblMulta.getModel();	
		modelo.addRow(datos);
	}
	
	/**
	 * Metodo que permite remover todos los elementos de tblMultas
	 */
	public void limpiarTabla(){
		DefaultTableModel modelo = (DefaultTableModel) tblMulta.getModel();
		while (modelo.getRowCount() > 0) {
			modelo.removeRow(0);
		}
	}


	/**
	 * Permitira mostrar un mensaje de informacion al usuario 
	 * @param mensaje a mostrar al usuario
	 */
	public void mostrarMensaje(String mensaje) {
		JOptionPane.showMessageDialog(this, mensaje, "Informacion", JOptionPane.INFORMATION_MESSAGE);
	}
	
	/**
	 * Permitira mostrar un mensaje de error al usuario 
	 * @param mensaje a mostrar al usuario
	 */
	public void mostrarMensajeError(String mensaje) {
		JOptionPane.showMessageDialog(this, mensaje, "ERROR", JOptionPane.ERROR_MESSAGE);
	}
	
	/**
	 * Permitira mostrar un mensaje de confirmacion al usuario 
	 * @param mensaje a mostrar al usuario
	 * @return respuesta del usuario
	 */
	public int mostrarMensajeConfirmacion(String mensaje) {
		return JOptionPane.showConfirmDialog(this, mensaje, "Selecciona una Opcion", JOptionPane.YES_NO_OPTION);
	}
}
